"""字典"""""

'''定义'''
# 字典是一个容器模型，它可以存储任意数据类型
# # 格式：{key:value}每个元素使用英文逗号隔开,python字典类是dict
# # 注意实现，key必须是不可变数据类型，value啥都行，当key名字重复时，会对之前value覆盖
dict01 = {'id': 1, 'name': 'dengze', 'id': 2}
print(type(dict01))  # <class 'dict'>

'''特性'''
# 可变的，可遍历，有序的，但是索引不是根据索引号，根据key来查找对应的value
print(dict01['id']) # 2

'''内置方法'''
# 1、pop(key) 删除对应的键值对
dict01.pop('id')
print(dict01)
# 2、update(dict) 对字典进行添加 或 更新
dict01.update({'id':1})
print(dict01)
dict01.update({'id':2})
print(dict01)
# 3、get(key) 通过键来查询对应值,用get查找更好
print(dict01.get('name'))  # dengze
# 4、keys() 获取字典的全部key，返回的是列表
print(dict01.keys()) # dict_keys(['name', 'id'])
# 5、values() 获取字典的全部value，返回的是列表
print(dict01.values()) # dict_values(['dengze', 2])
# 6、items() 获取字典的全部键值对，返回的是 [(key,value)]
print(dict01.items()) # dict_items([('name', 'dengze'), ('id', 2)])

'''字典的循环'''  #把元组拆开,给它赋值
for k,v in dict01.items():
    print(k,v)

'''字典的装包和解包'''
# 生成字典的过程就是字典的装包

# 解包：正常来说解的是key
dict02 = {'id':1,'name':'dengze','city':'沈阳'}  #装包
uid,name,city = dict(**dict02).values()  #字典解包用2个*,字典解包前面要加上dict才行
print(uid,name,city)